package com.sikulifang.bank.simulation.service;

import com.sikulifang.bank.simulation.constant.TableConstants;

import java.util.List;

/**
 * ClassName IBankService
 * Description IBankService
 *
 * @author Yat
 * Date 2023年6月9日, 0009 16:52
 * version 1.0
 */
public interface IBankService extends IService {
    @Override
    default String getTableName() {
        return TableConstants.BANK_TABLE_NAME;
    }

    /**
     * Description: 获取银行数据
     * <p>
     * Date: 2023年6月9日, 0009 17:03
     *
     * @return {@link List<String>}
     */
    List<String> getBankCode();

    /**
     * 启动服务
     */
    void start(Integer id);

    /**
     * Description: 停止服务
     * <p>
     * Date: 2023年6月9日, 0009 17:04
     */
    void stop(Integer id);

    /**
     * Description: 根据银行的code查询失败率
     * <p>
     * Date: 2023年6月16日, 0016 14:02
     *
     * @param bankCode 银行code
     * @return {@link double}
     */
    double getFailureRateByCode(String bankCode);
}
